{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import division\n",
    "from math import floor\n",
    "\n",
    "from IPython.display import Image"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Queue\n",
    "\n",
    "i. It is **linear data structure** follows a particular order in which the operations are performed \n",
    "\n",
    "ii. Follows **First In First Out (FIFO) pattern**\n",
    "\n",
    "iii. Simple example of a queue is any queue of consumers for a resource, in which customer that comes first is served first.\n",
    "\n",
    "### Queue vs Stack\n",
    "\n",
    "Difference between queue and stack is that, in stack we remove the item that is mostly recently added. In Queue, we remove the item that is least recently added(oldest one gets eliminated first) \n",
    "\n",
    "### Applications\n",
    "\n",
    "Queue is used when things needs to be processed immediately, but have to processed in **First in First Out(FIFO)** order like Breadth First Search. Queue is useful when : \n",
    "\n",
    "i. When a resource is shared among multiple consumers. Examples include CPU scheduling, Disk Scheduling.\n",
    "\n",
    "ii. When data is transferred asynchronously (data not necessarily received at same rate as sent) between two processes. Examples include IO Buffers, pipes, file IO, etc.\n",
    "\n",
    "### Types of Queue: \n",
    "\n",
    "There are four types of queue:\n",
    "\n",
    "i. Simple/Normal Queue \n",
    "\n",
    "ii. Circular Queue \n",
    "\n",
    "iii. Priority Queue\n",
    "\n",
    "iv. Dequeue (Double Ended Queue)\n",
    "\n",
    "### Implementation Ways of Queue: \n",
    "\n",
    "There are two ways to implement queue:\n",
    "\n",
    "i. Arrays : Both stacks and queues can be implemented with arrays. \n",
    "\n",
    "    i. The problem with this approach is that **arrays static data structures — they have a fixed size**. \n",
    "    \n",
    "    ii. If your **stack or queue doesn’t use up the maximum space allotted by the array, you’re wasting memory**.\n",
    "    \n",
    "    iii. If it has ** too many elements, the array won’t be able to hold them all, and you’ll get an index out of bounds error.**\n",
    "    \n",
    "\n",
    "ii. Linked List"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Implementation of Queue using Array"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Implementation of Normal Queue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n",
    "# Insert, Delete \n",
    "class Queue:\n",
    "    \n",
    "    def __init__(self, capacity):\n",
    "        \n",
    "        self.rear = -1\n",
    "        self.front = -1\n",
    "        self.capacity = capacity\n",
    "        self.queue = [None] * self.capacity #default queue size\n",
    "        \n",
    "        \n",
    "    def isQueueEmpty(self):\n",
    "        \n",
    "        if self.rear == -1 and self.front == -1 :\n",
    "            return True\n",
    "        else:\n",
    "            return False\n",
    "        \n",
    "        \n",
    "    def isQueueFull(self):\n",
    "        \n",
    "        if self.rear == len(self.queue)-1:\n",
    "            \n",
    "            return True\n",
    "        else:\n",
    "            return False\n",
    "        \n",
    "        \n",
    "    def insert(self, element):\n",
    "        \n",
    "        if self.isQueueFull():\n",
    "            print \"Queue Full\"\n",
    "            return\n",
    "        \n",
    "        elif self.isQueueEmpty():\n",
    "            \n",
    "            self.rear = 0\n",
    "            self.front = 0 \n",
    "            self.queue[self.rear] = element\n",
    "            \n",
    "        else:\n",
    "            self.rear += 1\n",
    "            self.queue[self.rear] = element\n",
    "            \n",
    "        print \"queue \", self.queue\n",
    "        print \"rear \", self.rear\n",
    "        print \"front \", self.front\n",
    "            \n",
    "            \n",
    "    def delete(self):\n",
    "                    \n",
    "            if self.isQueueEmpty():\n",
    "                return\n",
    "            elif self.front == self.rear:\n",
    "                self.front = -1\n",
    "                self.rear = -1 \n",
    "                self.queue = [None] * self.capacity\n",
    "                print \"Array Empty\"\n",
    "            else:\n",
    "                self.front += 1\n",
    "                print \"front \", self.front\n",
    "                \n",
    "                print \"queue \", self.queue[self.front:]\n",
    "               \n",
    "            \n",
    "                \n",
    "queue = Queue(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "queue  [4, None, None]\n",
      "rear  0\n",
      "front  0\n"
     ]
    }
   ],
   "source": [
    "queue.insert(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[4, None, None]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "queue.queue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Array Empty\n"
     ]
    }
   ],
   "source": [
    "queue.delete()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Draw backs in Normal/Simple Queue\n",
    "\n",
    "We cannot use space of removed elements for example: If our queue contains three elements [780, 30, 64], and we remove/delete one element from the queue then our queue will hava [30, 64]. So now, if we want to insert any new element in the queue then  we cannot insert any other element in the queue as implementation of queue will show that queue is full. In other words, we cannot use space of element that is removed from the queue.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conclusion of Normal/Simple Queue\n",
    "\n",
    "If there are three elements in the queue: [1,2,3], If we deQueue the first element updated queue is: [2, 3]. Now even if we try to insert new element, we cannot insert because right side of the queue is still full. We can only use the queue once all the elements are removed. \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Image(filename=\"./images/drawBackSimpleQueue.png\")\n",
    "# source Quora"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Circular Queue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "\n",
    "# Insert, Delete \n",
    "class CircularQueue:\n",
    "    \n",
    "    def __init__(self, capacity):\n",
    "        \n",
    "        self.rear = -1\n",
    "        self.front = -1\n",
    "        self.capacity = capacity\n",
    "        self.queue = [None] * self.capacity #default queue size\n",
    "        \n",
    "        \n",
    "    def isQueueEmpty(self):\n",
    "        \n",
    "        if self.rear == -1 and self.front == -1 :\n",
    "            return True\n",
    "        else:\n",
    "            return False\n",
    "        \n",
    "        \n",
    "    def isQueueFull(self):\n",
    "        \n",
    "        if (self.rear + 1) % self.capacity == self.front:\n",
    "            return True\n",
    "        else:\n",
    "            return False\n",
    "        \n",
    "        \n",
    "    def insert(self, element):\n",
    "        \n",
    "        if self.isQueueFull():\n",
    "            print \"Queue Full\"\n",
    "            return\n",
    "        \n",
    "        elif self.isQueueEmpty():\n",
    "            \n",
    "            self.rear = 0\n",
    "            self.front = 0 \n",
    "            self.queue[self.rear] = element\n",
    "            \n",
    "        else:\n",
    "            self.rear = (self.rear + 1) % self.capacity\n",
    "            self.queue[self.rear] = element\n",
    "            \n",
    "        print \"queue \", self.queue\n",
    "        print \"rear \", self.rear\n",
    "        print \"front \", self.front\n",
    "            \n",
    "            \n",
    "    def delete(self):\n",
    "                    \n",
    "            if self.isQueueEmpty():\n",
    "                return\n",
    "            elif self.front == self.rear:\n",
    "                self.front = -1\n",
    "                self.rear = -1 \n",
    "                self.queue = [None] * self.capacity\n",
    "                print \"Array Empty\"\n",
    "            else:\n",
    "                self.queue[self.front] = None\n",
    "                self.front = (self.front + 1) % self.capacity\n",
    "            print \"front \", self.front\n",
    "                \n",
    "            print \"queue \", self.queue\n",
    "               \n",
    "            \n",
    "                \n",
    "queue = CircularQueue(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "queue.insert(300)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "queue.queue"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "queue.delete()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Conclusion of Circular Queue\n",
    "\n",
    "Time Complexity: Time complexity of enQueue(), deQueue() operation is O(1) as there is no loop in any of the operation.\n",
    "\n",
    "#### Applications:\n",
    "\n",
    "##### Memory Management: \n",
    "\n",
    "The unused memory locations in the case of ordinary queues can be utilized in circular queues.\n",
    "\n",
    "\n",
    "##### Traffic system: \n",
    "\n",
    "In computer controlled traffic system, circular queues are used to switch on the traffic lights one by one repeatedly as per the time set.\n",
    "\n",
    "\n",
    "##### CPU Scheduling: \n",
    "\n",
    "Operating systems often maintain a queue of processes that are ready to execute or that are waiting for a particular event to occur.\n",
    "\n",
    "\n",
    "## Problem in Normal Queue\n",
    "\n",
    "In a normal Queue, we can insert elements until queue becomes full. But once queue becomes full, we can not insert the next element even if there is a space in front of queue.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Priority Queue\n",
    "\n",
    "### Motivation of priority Queue\n",
    "\n",
    "There are scenarios where element with highest priority should be handled first or given more preferences. \n",
    "\n",
    "Priority queues are a kind of abstract data type(means it can be implemented using other data structures also) that generalizes the queue. Their **principles are exactly the same** **except** that they also **include a priority for every value in the queue.** When a value is inserted, a priority is assigned to it. The value with the highest priority is always removed first. However, when two values have same priority, then we follow FIFO rule\n",
    "\n",
    "You can think of priority queues like a hospital. Treating patients in a first-in-first-out (FIFO) approach isn't always a good idea because some patients may be in critical condition. So, a patient who has a cough may come in and be assigned a low priority. Then a patient may come in later who has a gunshot wound, and they would be given a high priority and then be treated first.\n",
    "\n",
    "### Types of Priority Queue\n",
    "\n",
    "** i. Ascending priority queue(implementation same as min heap): ** \n",
    "\n",
    "**Lower priority given to higher value and highest priority given to lower value**. For example: [1,2,3,4,5] so here number 1 has highest priority and number 5 has lowest priority\n",
    "\n",
    "** ii. Descending priority queue(implementation same as max heap): **\n",
    "\n",
    "**Lower priority given to lower value and highest priority given to higher value**. For example: [5,4,3,2,1] so here number 5 has highest priority and number 1 has lowest priority\n",
    "\n",
    "\n",
    "### Implementation Method of Priority Queue \n",
    "\n",
    "Priority queue can be implemented using arrays. For efficient implementation, we should consider concept of **Heaps(specially binary heap)** as it requires less complexity. \n",
    "\n",
    "### Applications of Priority Queue\n",
    "\n",
    "**Dijkstra’s Shortest Path Algorithm using priority queue**: When the graph is stored in the form of adjacency list or matrix, priority queue can be used to extract minimum efficiently when implementing Dijkstra’s algorithm.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Binary Heap\n",
    "\n",
    "The **heap, or better priority queue**, as abstract data structure usually supports operations like is-empty, add-element, delete-min. And usually not find-element. \n",
    "\n",
    "However, there are other types of heaps also instead of binary heap. Such as **Binomail heap** in which parent can have more than 2 children\n",
    "\n",
    "So if we want to search element in binary heap we have to search all the elements (complexity: O(N)) in worst case.\n",
    "\n",
    "### Operations: \n",
    "\n",
    "i. Insert\n",
    "\n",
    "ii. Delete\n",
    "\n",
    "**Note: We cannot pass complete array once and expect algorithm to arrange in binary heap. Therefore, when any new element is inserted, algorithm arranges the array based on min/max heap**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "class BinaryHeap:\n",
    "    \n",
    "    \n",
    "    def __init__(self):\n",
    "        \n",
    "        self.array = []\n",
    "        \n",
    "            \n",
    "    def DoMinHeap(self, i):\n",
    "        \n",
    "        smallest = i\n",
    "        left_i = 2*i + 1\n",
    "        right_i = 2*i + 2\n",
    "        \n",
    "            \n",
    "        if left_i < len(self.array) and self.array[i] > self.array[left_i]:\n",
    "            smallest = left_i\n",
    "            \n",
    "        if right_i < len(self.array) and self.array[i] > self.array[right_i]:\n",
    "            smallest = right_i\n",
    "            \n",
    "        if smallest != i:\n",
    "            self.array[i], self.array[smallest] = self.array[smallest], self.array[i]\n",
    "#             print (\"smallest changed \", smallest)\n",
    "            self.DoMinHeap(smallest)\n",
    "        \n",
    "    \n",
    "    def DoMaxHeap(self, i):\n",
    "\n",
    "        largest = i\n",
    "        left_i = 2*i + 1\n",
    "        right_i = 2*i + 2\n",
    "\n",
    "        if right_i < len(self.array) and self.array[i] < self.array[right_i]:\n",
    "            largest = right_i\n",
    "            \n",
    "        if left_i < len(self.array) and self.array[i] < self.array[left_i]:\n",
    "            largest = left_i\n",
    "\n",
    "\n",
    "\n",
    "        if largest != i:\n",
    "            self.array[i], self.array[largest] = self.array[largest], self.array[i]\n",
    "            self.DoMaxHeap(largest)\n",
    "                    \n",
    "            \n",
    "    def insert(self, element):\n",
    "        \n",
    "        self.array.append(element)\n",
    "        return self.main()\n",
    "        \n",
    "        \n",
    "    def delete(self):\n",
    "        \n",
    "        #swap first and last element \n",
    "        # remove last element\n",
    "        first_element = 0\n",
    "        self.array[-1], self.array[first_element] = self.array[first_element], self.array[-1]\n",
    "        self.array = self.array[0:-1]\n",
    "        \n",
    "        return self.main()\n",
    "    \n",
    "    \n",
    "    def main(self):\n",
    "        \n",
    "        #because after half size of array, there would be left and right children\n",
    "        arrSize = int(floor(len(self.array)/2))\n",
    "        \n",
    "        for i in range(arrSize, -1, -1):\n",
    "            print (\"i, \", i)\n",
    "#             self.DoMinHeap(i)\n",
    "            self.DoMaxHeap(i)\n",
    "#             if i == 0:\n",
    "#                 break\n",
    "        return self.array\n",
    "         \n",
    "input_array = [6, 4, 2, 3, 1]\n",
    "print \"Input array \", input_array, \"\\n\"\n",
    "\n",
    "# bheap = BinaryHeap(input_array)\n",
    "bheap = BinaryHeap()\n",
    "print \"Min heap\", bheap.main()\n",
    "\n",
    "# new_num = 0\n",
    "# print \"insert new number \", new_num\n",
    "print \"min heap after inserting new number \", bheap.insert(17)\n",
    "# print \"Min heap after removing first element \", bheap.delete()\n",
    "print \"\"\n",
    "print \"===============================Summary===================================\"\n",
    "print \"Space Complexity: O(n)\"\n",
    "print \"Search Complexity: O(n)\"\n",
    "print \"Deletion: O(log n) because after removing element we again have to call heapify function\"\n",
    "print \"Insertion: O(Log n) because again after inserting we have to call heapify function\"\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "bheap.insert(-42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "bheap.delete()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Applications of Heaps \n",
    "\n",
    "1) **Heap Sort:** Heap Sort uses Binary Heap to sort an array in O(nLogn) time.\n",
    "\n",
    "2) **Priority Queue:** Priority queues can be efficiently implemented using Binary Heap because it supports insert(), delete() and extractmax(), decreaseKey() operations in O(logn) time. Binomoial Heap and Fibonacci Heap are variations of Binary Heap. These variations perform union also efficiently.\n",
    "\n",
    "3) **Graph Algorithms:** The priority queues are especially used in Graph Algorithms like Dijkstra’s Shortest Path and Prim’s Minimum Spanning Tree.\n",
    "\n",
    "4) Many problems can be efficiently solved using Heaps.\n",
    "\n",
    "\n",
    "a) K’th Largest Element in an array.\n",
    "\n",
    "b) Sort an almost sorted array/\n",
    "\n",
    "c) Merge K Sorted Arrays."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
